<?php
namespace app\admin\taglib;
use think\Cache;
use think\template\TagLib;

class Easycms extends TagLib{

    /**
     * 定义标签列表
     */
    protected $tags   =  [
        # 标签定义：
        'list'=> ['attr' => 'length,orderwhere,columnId,order,value,key', 'close' => 1],//文章列表
        'listpage'=>['attr'=>'value,columnId,order,limit,Preview','close'=>1],//文章列表分页
    ];


    public function taglist($attr, $content){
        $columnId=!empty($attr['columnId']) ? $attr['columnId'] : '';//输出的栏目id
        $orderwhere=!empty($attr['orderwhere']) ? $attr['orderwhere'] : '';//排序条件
        $order = !empty($attr['order']) ? $attr['order'] : '';     // 排序方式
        $value = !empty($attr['value']) ? $attr['value'] : '';    // 解析数组名
        $length=!empty($attr['length']) ? $attr['length'] : 0;     //展示长度
        $limit=!empty($attr['limit']) ? $attr['limit'] : 0;    //偏移量(从第几篇开始显示)

        $html  = '<?php ';
        $html .= '$think_order = "'.$order.'";';
        $html .= '$think_columnId = "'.$columnId.'";';
        $html .= '$think_orderwhere = "'.$orderwhere.'";';
        $html .='$think_limit="'.$limit.'";';
        $html .='$think_length="'.$length.'";';
        # 查询数据

            $html .= '$think_db_info = db("article")->where("column_id","=",$think_columnId)->order($think_orderwhere,$think_order)->limit($think_limit,$think_length)->select();';

        $html .= ' ?>';
        # 开启循环
        $html .= '{volist name="think_db_info" id="' . $value . '" }';
        $html .= $content;
        $html .= '{/volist}';
        return $html;


    }


    public function taglistpage($attr, $content){
        $columnId=!empty($attr['columnId']) ? $attr['columnId'] : '';//输出的栏目id
        $orderwhere=!empty($attr['orderwhere']) ? $attr['orderwhere'] : '';//排序条件
        $order = !empty($attr['order']) ? $attr['order'] : '';     // 排序方式
        $value = !empty($attr['value']) ? $attr['value'] : '';    // 解析数组名
        //$length=!empty($attr['length']) ? $attr['length'] : '';     //展示长度
        $limit = !empty($attr['limit']) ? $attr['limit'] : '10';   // 分页条数
        $page  = !empty($attr['page'])  ? $attr['page'] : 'false'; // 是否分页
        $preview=$attr['preview'];//是否为预览模式
        $pageNum=$attr['pageNum'];//当前页是第几页，循环渲染时使用





        $html  = '<?php ';
        $html.='$think_columnId='.$columnId.';';
        $html.='$think_preview='.$preview.';';
        $html.='$think_dir=db("column")->where("id=$think_columnId")->value("dir_name");';//查询文件夹名称
        $html.='$think_art_dir_name=db("project")->where("1=1")->value("art_dir_name");';//查询文章文件名称
        $html.='$think_limit='.$limit.';';
        $html .= '$think_order = "'.$order.'";';
        $html .= '$think_orderwhere = "'.$orderwhere.'";';

//

        if ($page=="true"){
            $html.='$think_pageNum='.$pageNum.';';
            $html.='$think_preview==true ? $options=[] : $options=["path"=>"/$think_art_dir_name/$think_dir/list_[PAGE].html","page"=>$think_pageNum];';//判断是否是预览模式
            $html.=  '$think_res= db("article")->where("column_id=$think_columnId")->order($think_orderwhere,$think_order)->paginate($think_limit,false,$options);';
            $html .= '$think_page=$think_res->render();';



                    $res_num=db("article")->where("column_id=$columnId")->count("id");//统计记录条数
                    $number=ceil($res_num/$limit);//需要渲染的次数
                    Cache::set("number",$number);




        }else{
            $html .='$think_res=db("article")->where("column_id=$think_columnId")->order($think_orderwhere,$think_order)->select();';
            Cache::set("number",1);//不分页只需要生成一次静态
        }

        $html .= '?>';
        # 开启循环
        $html .= '{volist name="think_res" id="' . $value . '" }';
        $html .= $content;
        $html .= '{/volist}';

        return $html;


    }










}
